c++ - Windows unicode 命令行 argv
全部标签 是否有具体的方法来确定C中RegQueryValueEx的REG_BINARY值所需的确切缓冲区大小?如果可能,请提供代码演示方法。 最佳答案 执行winAPI双重调用舞蹈,它适用于除Reg函数之外的众多winAPI:调用RegQueryValueEx一次,将NULL作为lpData传递,并传递指向lpcpData的指针,args5和6。该函数将返回ERROR_SUCCESS并填充lpcpData具有所需的缓冲区大小。使用该大小的缓冲区再次调用。您也可以从传递缓冲区开始,如果它太小,函数将返回ERROR_MORE_DATA并用所需的
我有一个多线程程序,其中我无条件地在一个线程(线程A)中休眠无限时间。当另一个线程(ThreadB)中发生事件时,它通过发信号唤醒Thread-A。现在我知道有多种方法可以做到这一点。当我的程序在windows环境下运行时,我在Thread-A中使用WaitForSingleObject,在Thread-B中使用SetEvent。它工作正常。我还可以使用基于文件描述符的模型进行轮询、选择。有不止一种方法可以做到这一点。但是,我试图找到最有效的方法。我想在Thread-B发出信号时尽快唤醒Thread-A。你认为什么是最好的选择。我可以探索基于驱动程序的选项。谢谢
我在Windows7机器上使用命令行中的imagemagick。以下代码用于为图像添加水印:composite\-watermark30%\-gravitysouth\the_watermark.png\pic_to_be_watermaked.png\watermark_completed.png问题是:当我尝试为动画GIF添加水印时它不起作用如何将此水印命令与下面的命令结合使用?此命令获取文件夹“static_images”中的所有PNG并将它们组合成动画GIF。它还确保图像的宽度为350像素,高度保持在适当的宽高比。它还使图像有些模糊,并将动画速度设置为4,并确保它无限循环:co
是否可以静态初始化CRITICAL_SECTION,如pthread_mutex_tmutex=PTHREAD_MUTEX_INITIALIZER?换句话说,是否可以在C语言中初始化库中的全局CRITICAL_SECTION而不必弄乱DllMain等? 最佳答案 是的,只需在DLL_PROCESS_ATTACH中初始化并在DLL_PROCESS_DETACH中删除CRITICAL_SECTIONg_cs={0};BOOLWINAPIDllMain(HINSTANCEhinstDLL,//handletoDLLmoduleDWORDf
大家我想知道如何在C中调试Windows服务启动代码。有几个这样的问题,但在C#中,但它们不是我需要的。到目前为止,我只能附加到进程进行调试。现在我想调试main()函数,怎么办?越详细越好。非常感谢。我的代码如下。主要功能:voidmain(){SERVICE_TABLE_ENTRYServiceTable[2];ServiceTable[0].lpServiceName="MemoryStatus";ServiceTable[0].lpServiceProc=(LPSERVICE_MAIN_FUNCTION)ServiceMain;//ServiceMainServiceTable
在我正在处理的批处理脚本中,在调用2个子例程后未保留变量值,一个来自批处理脚本的FOR循环中的另一个子例程。这是演示该场景的代码片段:setERRORCODE=0FOR...do(call:myRoutine@ECHO%ERRORCODE%//HereIamexpectingtheERRORCODEtobea1(non-zero),butIamseeingthatitisgettingresetto0)myRoutine:call:anotherIF%ERRORCODE%NEQ0GOTO:EOF//HereIamgettingtheERRORCODEas1asexpected...GO
我正在做一个C项目,我试图在一个目录中找到最旧的文件,这样一旦找到最旧的文件,它就会被删除。我找不到任何关于如何使用Windows在C中执行此操作的信息,已找到在Linux中执行此操作的方法,但我需要一个适用于Windows的版本。 最佳答案 基本上您会扫描目录,就像在Linux中一样(但您也可以查看Boost库)。有关时间和日期的数据已在directoryscanstructure中可用。HANDLEfh;FILETIMEoldest={-1U,-1U};//BuffertoholdfilenameoldestFile=mallo
我写了一个简单的自动更新程序,我使用带有ftp命令的批处理文件首先下载“版本”文件,然后将文本与本地“version.txt”文件进行比较——如果版本不同,我继续在同一个批处理脚本中下载并安装更新。那部分很好,但是当我创建任务时(使用在setup.exe安装程序中分发的另一个批处理文件)因为我需要它来运行我的数百个非技术精明的用户-我想添加一个随机时间偏移到作业的开始时间,这样我就不会让所有终端同时访问我的服务器以进行更新。SCHTASKS.EXE/CREATE/SCDAILY/ST10:00/TN"我的更新任务"/TR"c:\myupdater.bat"我需要它与XP和Vista+兼
有什么方法可以在Windows中用C执行命令,并且不使用System命令而获得输出?win32api有函数吗? 最佳答案 看看_popen功能。它适用于控制台子系统可执行文件。如果您的目标是Windows子系统,则复杂得多CreateProcess基于解决方案。 关于C执行命令窗口,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14551789/
当我遇到vault和vaultclidll时,我正在System32中的dll中跌跌撞撞。我假设这些库使用密码存储,我想知道是否有人有关于这些的更多信息。我试着搜索谷歌,但只能找到一堆“这是病毒吗”和“修复此错误”的网站。我假设这些是C/C++库,因为我尝试在C#项目中添加对它们的引用但没有成功。我想找出这些dll包含哪些方法,以及是否可以使用DllImport和extern从C#中引用它们。 最佳答案 Vaultcmd.exe(及其依赖项vaultcli.dll)是相当于CredentialManager的命令行在控制面板中(在W